package domijn;

import java.util.ArrayList;

import daoDataFactory.DaoFactory;
import daoMySQL.MySQLGerecht;

public class Gerecht implements Comparable<Gerecht>{
	
	private Menu Menu;
	private Categorie Cat;
	private int GrId;
	private int GrNewNumber;
	private int GrOldNumber;
	private String GrName;
	private String GrPrice;
	private String GrDiscr;
	private ArrayList<Gerecht>arGerecht;
	
	
	public Gerecht(Menu menu, Categorie cat,int grId, int grOldNumber,int grNewNumber,String grName, String grPrice, String grDiscr) {
		
		this.Menu = menu;
		this.Cat = cat;
		this.GrId = grId;
		this.GrNewNumber = grNewNumber;
		this.GrOldNumber = grOldNumber;
		this.GrName = grName;
		this.GrPrice = grPrice;
		this.GrDiscr = grDiscr;
		arGerecht = new ArrayList<Gerecht>();
	}

	
	


	public Menu getMenu() {
		return Menu;
	}
	public void setMenu(Menu menu) {
		Menu = menu;
	}
	public Categorie getCat() {
		return Cat;
	}
	public void setCat(Categorie cat) {
		Cat = cat;
	}
	public int getGrId() {
		return GrId;
	}
	public void setGrId(int grId) {
		GrId = grId;
	}

	public int getGrNewNumber() {
		return GrNewNumber;
	}
	public void setGrNewNumber(int grNewNumber) {
		GrNewNumber = grNewNumber;
	}

	public int getGrOldNumber() {
		return GrOldNumber;
	}
	public void setGrOldNumber(int grOldNumber) {
		GrOldNumber = grOldNumber;
	}

	
	public String getGrName() {
		return GrName;
	}
	public void setGrName(String grName) {
		GrName = grName;
	}

	public String getGrPrice() {
		return GrPrice;
	}
	public void setGrPrice(String grPrice) {
		GrPrice = grPrice;
	}

	public String getGrDiscr() {
		return GrDiscr;
	}
	public void setGrDiscr(String grDiscr) {
		GrDiscr = grDiscr;
	}
	
	public ArrayList<Gerecht> getArGerecht() {
		return arGerecht;
	}
	public void setArGerecht(ArrayList<Gerecht> arGerecht) {
		this.arGerecht = arGerecht;
	}
/**@author stijn
 * dit zijn onze getters en setters
 */
	@Override
	public String toString() {
		return 
			"Het menu = " + Menu + "de categorie = " +Cat+ "het nieuwe nummer = "+ GrNewNumber + "het oude nummer = " + GrOldNumber + " de naam = " + GrName + "de prijs = " + GrPrice + "de beschrijving = " + GrDiscr;
	}
	
	/**@author stijn
	 * @see 
	 * dit checked of je gerecht niet 2x voorkomt
	 */
	@Override
	public int compareTo(Gerecht g) {
		int a = GrNewNumber;
		int b = g.getGrNewNumber();
		boolean c = a == b;
		if (c == false) {
			return a;
		}
		else {
			return b;
		}
	
	}
	
	/** 
	 * @param save slaat een gerecht op
	 * @see MySQLGerecht	 
	 */
	public void save(){
		DaoFactory.getwokapplicatie().getDaoIGerecht().save(this);
		System.out.println("save methode domijn gerecht");
	}
	/** 
	 * @param update slaat veranderingen van een gerecht op
	 * @see MySQLGerecht	 
	 */
	public void update (){
		DaoFactory.getwokapplicatie().getDaoIGerecht().update(this);
	}
	/** 
	 * @param delete verwijderd een gerecht
	 * @see MySQLGerecht	 
	 */
	public void delete (){
		DaoFactory.getwokapplicatie().getDaoIGerecht().delete(this);
	}
	/** 
	 * @param find zoekt een gerecht
	 * @see MySQLGerecht	 
	 */
	public void find() {
		DaoFactory.getwokapplicatie().getDaoIGerecht().find(this);
	}
}